/**
 * date: 2018年2月21日
 * 使用'Visual Studio Code 1.18.1'编写(from Mac)
 * 
 * https://www.tslang.cn/docs/handbook/classes.html
 * 
 */
class Animal {
    name : string;
    constructor(theName:string) {this.name=theName;}
    move(distanceInMeters: number = 0){
        console.log(`${this.name} moved ${distanceInMeters}m.`);
    }
}

class Snake extends Animal {
    constructor(name: string) { super(name); }
    move(distanceInMeters = 5){
        console.log("Slithering...");
        super.move(distanceInMeters);
    }
}

class Horse extends Animal {
    constructor(name: string){super(name);}
    move(distanceInMeters = 45) {
        console.log("Galloping...");
        super.move(distanceInMeters);
    }
}

let sam = new Snake("Sammy the Python");
let tom: Animal = new Horse("Tommy the Palomino");

sam.move();
tom.move(34);
